<?
class Reserva {

    public function getNum_reserva() {
        return $this->num_reserva;
    }

    public function setNum_reserva($num_reserva) {
        $this->num_reserva = $num_reserva;
    }

    public function getStamp() {
        return $this->stamp;
    }

    public function setStamp($stamp) {
        $this->stamp = $stamp;
    }

    public function getFecha_reserva() {
        return $this->fecha_reserva;
    }

    public function setFecha_reserva($fecha_reserva) {
        $this->fecha_reserva = $fecha_reserva;
    }

    public function getEstado() {
        return $this->estado;
    }

    public function setEstado($estado) {
        $this->estado = $estado;
    }

    public function getLoginname() {
        return $this->loginname;
    }

    public function setLoginname($loginname) {
        $this->loginname = $loginname;
    }

    public function getId_cancha() {
        return $this->id_cancha;
    }

    public function setId_cancha($id_cancha) {
        $this->id_cancha = $id_cancha;
    }

    public function getId_cliente() {
        return $this->id_cliente;
    }

    public function setId_cliente($id_cliente) {
        $this->id_cliente = $id_cliente;
    }

    public function getComentario() {
        return $this->comentario;
    }

    public function setComentario($comentario) {
        $this->comentario = $comentario;
    }
    
    function sql_quote($valor) {
        if(get_magic_quotes_gpc()){
            $valor = stripslashes($valor);
            } 
            //comprueba si existe la función  
        if(function_exists("mysql_real_escape_string")){
            $valor = mysql_real_escape_string( $valor );
        } 
        //para las versiones < 4.3.0 de php usamos addslashes  
        else {
            $valor = addslashes($valor);        
        } 
        return $valor;
    }
    

    function anti_inyection(){
        $this->num_reserva=sql_quote($this->num_reserva);
        $this->stamp=sql_quote($this->stamp);
        $this->fecha_reserva=sql_quote($this->fecha_reserva);
        $this->estado=sql_quote($this->estado);
        $this->loginname=sql_quote($this->loginname);
        $this->id_cancha=sql_quote($this->id_cancha);
        $this->id_cliente=sql_quote($this->id_cliente);
        $this->comentario=sql_quote($this->comentario);
     }


    
    function __construct($num_reserva=0,$stamp=0,$fecha_reserva=0,$estado='',$loginname=0,$id_cancha=0,$id_cliente=0,$comentario='') {
        $this->num_reserva=$num_reserva;
        $this->stamp=$stamp;
        $this->fecha_reserva=$fecha_reserva;
        $this->estado=$estado;
        $this->loginname=$loginname;
        $this->id_cancha=$id_cancha;
        $this->id_cliente=$id_cliente;
        $this->comentario=$comentario;
        $this->anti_inyection();
    }

	function select_reservas($con){
            $strselect="SELECT * FROM reservas;";
            $resultado = mysql_query($strselect,$con);
            return $resultado;
	}	
	function select_reservasxfecha($con){
            $this->anti_inyection();
            $strselect="SELECT * FROM reservas where fecha_reserva='$this->fecha_reserva'";
            $resultado = mysql_query($strselect,$con);
            return $resultado;
	}
	function select_ultima_reserva($con){
            $strselect="SELECT max(num_reserva) as num FROM reservas;";
            $resultado = mysql_query($strselect,$con);
            $ult=mysql_fetch_object($resultado);
            return $ult->num;
	}
	function select_reservaxnumero($con){
            $this->anti_inyection();
            $strselect="SELECT * FROM reservas WHERE num_reserva= '$this->num_reserva';";
            $resultado = mysql_query($strselect,$con);
            return $resultado;
	}
	function modificar_reserva($con){
            $this->anti_inyection();
            $strupdate="UPDATE reservas SET stamp= '$this->stamp',fecha_reserva='$this->fecha_reserva',estado='$this->estado',loginname='$this->loginname',id_cancha='$this->id_cancha',id_cliente='$this->id_cliente',comentario='$this->comentario' WHERE num_reserva='$this->num_reserva';";
            mysql_query($strupdate,$con) or die (mysql_error());
	}
/*	function modificar_cabezal($con){
	$this->anti_inyection();
		$strupdate="UPDATE pedidos SET fecha_pedidos= '$this->fecha_pedidos',fecha_entrega='$this->fecha_entrega',estado='$this->estado',calle='$this->calle',numero='$this->numero',apto='$this->apto',comentario='$this->comentario' WHERE num_pedidos='$this->num_pedidos';";
		mysql_query($strupdate,$con) or die (mysql_error());
	}
*/
	function eliminar_reserva($con){
            $this->anti_inyection();
            $strdelete="delete  from reserva where num_reserva='$this->num_reserva';";
            mysql_query($strdelete,$con) or die (mysql_error());
	}
	function insertar_reserva($con){
            $this->anti_inyection();
            $strinsert="insert into reservas values('$this->num_pedidos','$this->stamp','$this->fecha_reserva','$this->estado','$this->loginname','$this->id_cancha','$this->id_cliente','$this->comentario');";
            mysql_query($strinsert,$con) or die (mysql_error());				
	}
	function seleccion_reservasxusuario($con){
            $this->anti_inyection();
            $strselect="SELECT * FROM reservas WHERE loginname='$this->loginname';";
            $resultado = mysql_query($strselect,$con);
            return $resultado;
	}
	function asignar_reserva($num_reserva,$stamp,$fecha_reserva,$estado,$loginname,$id_cancha,$id_cliente,$comentario) {
            $this->num_reserva=$num_reserva;
            $this->stamp=$stamp;
            $this->fecha_reserva=$fecha_reserva;
            $this->estado=$estado->nom_estado;
            $this->loginname=$loginname;
            $this->id_cancha=$id_cancha;
            $this->id_cliente=$id_cliente;
            $this->comentario=$comentario;
            $this->anti_inyection();
	}
	
	function select_reservasxfechaxtipo($con, $fecha, $tipo){
            $resultado = array();
            for ($h = 9; $h <= 23; $h++) {
                $unaCancha=new Cancha();
                $lasCanchas=$unaCancha->select_canchaXtipo($con, $tipo);
                while ($cancha = mysql_fetch_array($lasCanchas)){
                    $hora=$h.':00';
                    $fecha_reserva = get_datetime($fecha,$hora);
                        if ($unaCancha->is_Disponible($con, $cancha['id_cancha'], $fecha_reserva)){
                                $cli = new Cliente();
                                $cli->loginname=$_SESSION['usuario'];
                                $cliente = $cli->select_clientexloginname($con);
                                $reserva = new Reserva(null,null,$fecha_reserva,'DISPONIBLE', $cli->loginname, $cancha['id_cancha'], $cliente['id_cliente'], '');
                        }else{                                            
                            $reserva = new Reserva();
                            $reserva->get_reservaXFechaYCancha($con, $cancha['id_cancha'], $fecha_reserva);
                        }
                        $resultado[]=$reserva;
                }
             }
            return $resultado;
	}

    function get_reservaXFechaYCancha($con, $id_cancha, $fecha_reserva){
            $this->anti_inyection();
            $strselect="SELECT * FROM reservas WHERE". 
                        " DATE_FORMAT(fecha_reserva,  '".FORMATO_FECHA_SQL."')='$fecha_reserva'".
                        " and id_cancha=$id_cancha";
            $res = mysql_query($strselect, $con) or die (mysql_error());
            
            $estado=new Estado();
            $id_estado = mysql_result($res, 0, "estado");
            $estado->get_estado($con, $id_estado);
            
            $this->asignar_reserva(mysql_result($res, 0, "num_reserva"),
                    mysql_result($res, 0, "stamp"),
                    mysql_result($res, 0, "fecha_reserva"),
                    $estado,
                    mysql_result($res, 0, "loginname"),
                    mysql_result($res, 0, "id_cancha"),
                    mysql_result($res, 0, "id_cliente"),	 
                    mysql_result($res, 0, "comentario"));		 
    }
	

}
?>

